Redundant array of independent disks (RAID) is a data storage virtualization technology, which combines a plurality of physical disk drives into a single logic unit to improve data redundancy, reliability and performance. Depend on the required level of redundancy and performance, data is distributed across the plurality of physical disk drives using one of a plurality of RAID levels, for example, which can be RAID 0-RAID 50 etc. For example, in the conventional RAID 5, RAID 5 consists of block-level striping with distributed parity. The parity information is distributed among the plurality physical disk drives. Upon failure of a single physical disk drive, data read subsequently can be calculated (for example, via Exclusive OR (XOR) operation) from the distributed parity, such that no data is lost. Meanwhile, a hot spare physical disk drive can be selected to replace a damaged physical disk drive. All data on the damaged physical disk drive is rebuilt and written into the selected hot spare physical disk drive.
However, with the emergence of new technologies (for example, shingled media disk), the disk capacity increases, and the rebuilding time increases accordingly. In this case, the risk of double disk failure increases if the rebuilding time is not reduced. When the conventional RAID technology such as RAID 5 is employed, double disk failure will cause data loss. The rebuilding time is limited by the write input/output bandwidth of the hot spare physical disk drive. Therefore, the write input/output bandwidth of the hot spare physical disk drive has become the bottleneck for the conventional RAID technology, and the conventional RAID technology can hardly reduce the rebuilding time.